package xutils

import (
	"os"
	"path"
	"strings"
)

// FileExists file_exists()
func FileExists(filename string) bool {
	_, err := os.Stat(filename)
	if err != nil && os.IsNotExist(err) {
		return false
	}
	return true
}

// CurrentAbPath 获取当前程序运行的工作目录
// 兼容go run
func CurrentAbPath() string {
	//dir := getCurrentAbPathByExecutable()
	//if strings.Contains(dir, getTmpDir()) {
	//	return getCurrentAbPathByCaller()
	//}
	dir, _ := os.Getwd()
	return dir
}

// IsBuildRun
// 判断是否是build编译的文件
func IsBuildRun() bool {
	dir := getCurrentAbPathByExecutable()
	return !strings.Contains(dir, getTmpDir())
}

// 获取系统临时目录
func getTmpDir() string {
	return os.TempDir()
}

// 获取当前执行文件绝对路径
func getCurrentAbPathByExecutable() string {
	exePath, _ := os.Executable()
	return path.Dir(exePath)
}

// 获取当前执行文件绝对路径（go run）
func getCurrentAbPathByCaller() string {
	dir, _ := os.Getwd()
	return dir
}
